rm(list = ls(all.names = TRUE))
library(ggplot2)
library(tidyr)
library(dplyr)
library(knitr)
library(rmarkdown)
library(formatR)
data <- read.csv("df/icer-all.csv", as.is = TRUE)
df <- data[(data$scenario!="base"),]

df$cases.averted <- as.numeric(df$cases.averted)
df$cases.averted.per100k <- as.numeric(df$cases.averted.per100k)
df$icer.case.averted <- as.numeric(df$icer.case.averted)
df$deaths.averted <- as.numeric(df$deaths.averted)
df$deaths.averted.per100k <- as.numeric(df$ deaths.averted.per100k)
df$icer.death.averted <- as.numeric(df$icer.death.averted)
df$dalys <- as.numeric(df$dalys)
df$dalys.per100k <- as.numeric(df$dalys.per100k)
df$dalys.averted <- as.numeric(df$dalys.averted)
df$dalys.averted.per100k <- as.numeric(df$dalys.averted.per100k)
df$icer.daly.averted <- as.numeric(df$icer.daly.averted)
# subset relevant efficacies
df2 <- df[!(df$scenario == 'vaxbase' & df$v.eff %in% c(50, 60)),]
#table(df2$v.eff, useNA = 'always')

df3 <- df2[!(df2$scenario == 'vax70' & df2$v.eff %in% c(30,40)), ]
#table(df3$scenario, df3$v.eff, useNA = 'always')

# factors
df3$age <- factor(df3$age, levels = c("0-4 yrs", "5-19 yrs", "20-64 yrs", "65+ yrs", "All"))
df3$risk <- factor(df3$risk, levels = c("High", "Non-high", "All"))
df3$scenario <- factor(df3$scenario, levels = c("vaxbase", "vax70"))
df3$v.eff <- factor(df3$v.eff)

1 Tables

Subset data.

# subset scenario
df_base <- df3[(df3$scenario == 'vaxbase'),]
df_vax70 <- df3[(df3$scenario == 'vax70'),]

# age groups
age_df_base <- df_base[(df_base$risk == "All"),]
age_df_vax70 <- df_vax70[(df_vax70$risk == "All"),]

# risk groups
risk_df_base <- df_base[!(df_base$age == 'All'),]
risk_df_vax70 <- df_vax70[!(df_vax70$age == 'All'),]

2 Base Vaccination Scenario

2.1 Fig. ICER per case averted

ggplot(age_df_base, aes(x = age, y = icer.case.averted, color = v.eff, group = v.eff)) + 
    geom_point() + geom_line(linetype = "dotted") + labs(x = "Age group", color = "Vaccine \nefficacy") + 
    ylab("$ saved per case averted") + ggtitle("Base Vaccination: ICER per case averted")

ggplot(df_base[(df_base$age == "All"), ], aes(x = v.eff, y = icer.case.averted, 
    group = risk, color = risk)) + geom_point() + geom_line(linetype = "dotted") + 
    labs(x = "Vaccine efficacy (%)", color = "Risk") + ylab("$ saved per case averted") + 
    ggtitle("Base Vaccination: ICER per case averted")

ggplot(df_base, aes(x = age, y = icer.case.averted, group = risk, color = risk)) + 
    geom_point() + geom_line(linetype = "dotted") + labs(x = "Age group", color = "Risk group") + 
    ylab("$ saved per case averted") + ggtitle("Base Vaccination: ICER per case averted") + 
    facet_grid(~v.eff)

2.2 Fig. ICER per death averted

ggplot(age_df_base, aes(x = age, y = icer.death.averted, color = v.eff, group = v.eff)) + 
    geom_point() + geom_line(linetype = "dotted") + labs(x = "Age group", color = "Vaccine \nefficacy") + 
    ylab("$ saved per death averted") + ggtitle("Base Vaccination: ICER per death averted")

ggplot(df_base[(df_base$age == "All"), ], aes(x = v.eff, y = icer.death.averted, 
    group = risk, color = risk)) + geom_point() + geom_line(linetype = "dotted") + 
    labs(x = "Vaccine efficacy (%)", color = "Risk") + ylab("$ saved per death averted") + 
    ggtitle("Base Vaccination: ICER per death averted")

ggplot(df_base, aes(x = age, y = icer.death.averted, group = risk, color = risk)) + 
    geom_point() + geom_line(linetype = "dotted") + labs(x = "Age group", color = "Risk group") + 
    ylab("$ saved per death averted") + ggtitle("Base Vaccination: ICER per death averted") + 
    facet_grid(~v.eff)

2.3 Fig. ICER per DALY averted

ggplot(age_df_base, aes(x = age, y = icer.daly.averted, color = v.eff, group = v.eff)) + 
    geom_point() + geom_line(linetype = "dotted") + labs(x = "Age group", color = "Vaccine \nefficacy") + 
    ylab("$ saved per DALY averted") + ggtitle("Base Vaccination: ICER per DALY averted")

ggplot(df_base[(df_base$age == "All"), ], aes(x = v.eff, y = icer.daly.averted, 
    group = risk, color = risk)) + geom_point() + geom_line(linetype = "dotted") + 
    labs(x = "Vaccine efficacy (%)", color = "Risk") + ylab("$ saved per DALY averted") + 
    ggtitle("Base Vaccination: ICER per DALY averted")

ggplot(df_base, aes(x = age, y = icer.daly.averted, group = risk, color = risk)) + 
    geom_point() + geom_line(linetype = "dotted") + labs(x = "Age group", color = "Risk group") + 
    ylab("$ saved per DALY averted") + ggtitle("Base Vaccination: ICER per DALY averted") + 
    facet_grid(~v.eff)

Set up plots.

# age
g1 <- ggplot(age_df_base, aes(x = age, group = v.eff, color = v.eff)) + geom_point() + 
    geom_line(linetype = "dotted") + labs(x = "Age group", color = "Vaccine \nefficacy")
# risk
g2 <- ggplot(df_base[(df_base$age == "All"), ], aes(x = v.eff, group = risk, 
    color = risk)) + geom_point() + geom_line(linetype = "dotted") + labs(x = "Vaccine efficacy", 
    color = "Risk group")

g3 <- ggplot(risk_df_base, aes(x = age, group = risk, color = risk)) + geom_point() + 
    geom_line(linetype = "dotted") + labs(x = "Age group", color = "Risk group") + 
    facet_grid(~v.eff)

2.4 Fig. Cases, cases averted

# age groups
g1 + aes(y = cases) + labs(y = "Cases", title = "Base Vaccination: Cases")

g1 + aes(y = cases.per100k) + labs(y = "Cases per 100k", title = "Base Vaccination: Cases per 100k")

g1 + aes(y = cases.averted) + labs(y = "Cases averted", title = "Base Vaccination: Cases averted")

g1 + aes(y = cases.averted.per100k) + labs(y = "Cases averted per 100k", title = "Base Vaccination: Cases averted per 100k")

# risk groups
g2 + aes(y = cases) + labs(y = "Cases", title = "Base Vaccination: Cases")

g2 + aes(y = cases.per100k) + labs(y = "Cases per 100k", title = "Base Vaccination: Cases per 100k")

g2 + aes(y = cases.averted) + labs(y = "Cases averted", title = "Base Vaccination: Cases averted")

g2 + aes(y = cases.averted.per100k) + labs(y = "Cases averted per 100k", title = "Base Vaccination: Cases averted per 100k")

g3 + aes(y = cases) + labs(y = "Cases", title = "Base Vaccination: Cases")

g3 + aes(y = cases.per100k) + labs(y = "Cases per 100k", title = "Base Vaccination: Cases per 100k")

g3 + aes(y = cases.averted) + labs(y = "Cases averted", title = "Base Vaccination: Cases averted")

g3 + aes(y = cases.averted.per100k) + labs(y = "Cases averted per 100k", title = "Base Vaccination: Cases averted per 100k")

2.5 Fig. Deaths, deaths averted

# age groups
g1 + aes(y = deaths) + labs(y = "Deaths", title = "Base Vaccination: Deaths")

g1 + aes(y = deaths.per100k) + labs(y = "Deaths per 100k", title = "Base Vaccination: Deaths per 100k")

g1 + aes(y = deaths.averted) + labs(y = "Deaths averted", title = "Base Vaccination: Deaths averted")

g1 + aes(y = deaths.averted.per100k) + labs(y = "Deaths averted per 100k", title = "Base Vaccination: Deaths averted per 100k")

# risk groups
g2 + aes(y = deaths) + labs(y = "Deaths", title = "Base Vaccination: Deaths")

g2 + aes(y = deaths.per100k) + labs(y = "Deaths per 100k", title = "Base Vaccination: Deaths per 100k")

g2 + aes(y = deaths.averted) + labs(y = "Deaths averted", title = "Base Vaccination: Deaths averted")

g2 + aes(y = deaths.averted.per100k) + labs(y = "Deaths averted per 100k", title = "Base Vaccination: Deaths averted per 100k")

g3 + aes(y = deaths) + labs(y = "Deaths", title = "Base Vaccination: Deaths")

g3 + aes(y = deaths.per100k) + labs(y = "Deaths per 100k", title = "Base Vaccination: Deaths per 100k")

g3 + aes(y = deaths.averted) + labs(y = "Deaths averted", title = "Base Vaccination: Deaths averted")

g3 + aes(y = deaths.averted.per100k) + labs(y = "Deaths averted per 100k", title = "Base Vaccination: Deaths averted per 100k")

2.6 Fig. DALYs, DALYs averted

# age groups
g1 + aes(y = dalys) + labs(y = "DALYs", title = "Base Vaccination: DALYs")

g1 + aes(y = dalys.per100k) + labs(y = "DALYs per 100k", title = "Base Vaccination: DALYs per 100k")

g1 + aes(y = dalys.averted) + labs(y = "DALYs averted", title = "Base Vaccination: DALYs averted")

g1 + aes(y = dalys.averted.per100k) + labs(y = "DALYs averted per 100k", title = "Base Vaccination: DALYs averted per 100k")

# risk groups
g2 + aes(y = dalys) + labs(y = "DALYs", title = "Base Vaccination: DALYs")

g2 + aes(y = dalys.per100k) + labs(y = "DALYs per 100k", title = "Base Vaccination: DALYs per 100k")

g2 + aes(y = dalys.averted) + labs(y = "DALYs averted", title = "Base Vaccination: DALYs averted")

g2 + aes(y = dalys.averted.per100k) + labs(y = "DALYs averted per 100k", title = "Base Vaccination: DALYs averted per 100k")

g3 + aes(y = dalys) + labs(y = "DALYs", title = "Base Vaccination: DALYs")

g3 + aes(y = dalys.per100k) + labs(y = "DALYs per 100k", title = "Base Vaccination: DALYs per 100k")

g3 + aes(y = dalys.averted) + labs(y = "DALYs averted", title = "Base Vaccination: DALYs averted")

g3 + aes(y = dalys.averted.per100k) + labs(y = "DALYs averted per 100k", title = "Base Vaccination: DALYs averted per 100k")

3 70% Vaccination Scenario

3.1 Fig. ICER per case averted

g <- ggplot(df_vax70[(df_vax70$age == "All"), ], aes(x = v.eff, color = risk, 
    group = risk))
t1 <- labs(y = "$ saved per case averted", title = "70% Vaccination: ICER per case averted")
t2 <- labs(y = "$ saved per death averted", title = "70% Vaccination: ICER per death averted")
t3 <- labs(y = "$ saved per DALY averted", title = "70% Vaccination: ICER per DALY averted")

ggplot(age_df_vax70, aes(x = age, y = icer.case.averted, color = v.eff, group = v.eff)) + 
    geom_point() + geom_line(linetype = "dotted") + labs(x = "Age group", color = "Vaccine \nefficacy") + 
    t1

g + aes(y = icer.case.averted) + geom_point() + geom_line(linetype = "dotted") + 
    t1 + labs(x = "Vaccine efficacy (%)", color = "Risk group")

ggplot(df_vax70, aes(x = age, y = icer.case.averted, group = risk, color = risk)) + 
    geom_point() + geom_line(linetype = "dotted") + labs(color = "Risk group") + 
    ylab("$ saved per case averted") + ggtitle("70% Vaccination: ICER per case averted") + 
    facet_grid(~v.eff)

3.2 Fig. ICER per death averted

ggplot(age_df_vax70, aes(x = age, y = icer.death.averted, color = v.eff, group = v.eff)) + 
    geom_point() + geom_line(linetype = "dotted") + labs(x = "Age group", color = "Vaccine \nefficacy") + 
    t2

g + aes(y = icer.death.averted) + geom_point() + geom_line(linetype = "dotted") + 
    t2 + labs(x = "Vaccine efficacy (%)", color = "Risk group")

ggplot(df_vax70, aes(x = age, y = icer.death.averted, group = risk, color = risk)) + 
    geom_point() + geom_line(linetype = "dotted") + labs(color = "Risk group") + 
    ylab("$ saved per death averted") + ggtitle("70% Vaccination: ICER per death averted") + 
    facet_grid(~v.eff)

3.3 Fig. ICER per DALY averted

ggplot(age_df_vax70, aes(x = age, y = icer.daly.averted, color = v.eff, group = v.eff)) + 
    geom_point() + geom_line(linetype = "dotted") + labs(x = "Age group", color = "Vaccine \nefficacy") + 
    t3

g + aes(y = icer.daly.averted) + geom_point() + geom_line(linetype = "dotted") + 
    t3 + labs(x = "Vaccine efficacy (%)", color = "Risk group")

ggplot(df_vax70, aes(x = age, y = icer.daly.averted, group = risk, color = risk)) + 
    geom_point() + geom_line(linetype = "dotted") + labs(color = "Risk group") + 
    ylab("$ saved per DALY averted") + ggtitle("70% Vaccination: ICER per DALY averted") + 
    facet_grid(~v.eff)

Set up plots.

# age
h1 <- ggplot(age_df_vax70, aes(x = age, group = v.eff, color = v.eff)) + geom_point() + 
    geom_line(linetype = "dotted") + labs(x = "Age group", color = "Vaccine \nefficacy")
# risk
h2 <- ggplot(df_vax70[(df_vax70$age == "All"), ], aes(x = v.eff, group = risk, 
    color = risk)) + geom_point() + geom_line(linetype = "dotted") + labs(x = "Vaccine efficacy", 
    color = "Risk group")

h3 <- ggplot(risk_df_vax70, aes(x = age, group = risk, color = risk)) + geom_point() + 
    geom_line(linetype = "dotted") + labs(x = "Age group", color = "Risk group") + 
    facet_grid(~v.eff)

3.4 Fig. Cases, cases averted

# age groups
h1 + aes(y = cases) + labs(y = "Cases", title = "70% Vaccination: Cases")

h1 + aes(y = cases.per100k) + labs(y = "Cases per 100k", title = "70% Vaccination: Cases per 100k")

h1 + aes(y = cases.averted) + labs(y = "Cases averted", title = "70% Vaccination: Cases averted")

h1 + aes(y = cases.averted.per100k) + labs(y = "Cases averted per 100k", title = "70% Vaccination: Cases averted per 100k")

# risk groups
h2 + aes(y = cases) + labs(y = "Cases", title = "70% Vaccination: Cases")

h2 + aes(y = cases.per100k) + labs(y = "Cases per 100k", title = "70% Vaccination: Cases per 100k")

h2 + aes(y = cases.averted) + labs(y = "Cases averted", title = "70% Vaccination: Cases averted")

h2 + aes(y = cases.averted.per100k) + labs(y = "Cases averted per 100k", title = "70% Vaccination: Cases averted per 100k")

h3 + aes(y = cases) + labs(y = "Cases", title = "70% Vaccination: Cases")

h3 + aes(y = cases.per100k) + labs(y = "Cases per 100k", title = "70% Vaccination: Cases per 100k")

h3 + aes(y = cases.averted) + labs(y = "Cases averted", title = "70% Vaccination: Cases averted")

h3 + aes(y = cases.averted.per100k) + labs(y = "Cases averted per 100k", title = "70% Vaccination: Cases averted per 100k")

3.5 Fig. Deaths, deaths averted

# age groups
h1 + aes(y = deaths) + labs(y = "Deaths", title = "70% Vaccination: Deaths")

h1 + aes(y = deaths.per100k) + labs(y = "Deaths per 100k", title = "70% Vaccination: Deaths per 100k")

h1 + aes(y = deaths.averted) + labs(y = "Deaths averted", title = "70% Vaccination: Deaths averted")

h1 + aes(y = deaths.averted.per100k) + labs(y = "Deaths averted per 100k", title = "70% Vaccination: Deaths averted per 100k")

# risk groups
h2 + aes(y = deaths) + labs(y = "Deaths", title = "70% Vaccination: Deaths")

h2 + aes(y = deaths.per100k) + labs(y = "Deaths per 100k", title = "70% Vaccination: Deaths per 100k")

h2 + aes(y = deaths.averted) + labs(y = "Deaths averted", title = "70% Vaccination: Deaths averted")

h2 + aes(y = deaths.averted.per100k) + labs(y = "Deaths averted per 100k", title = "70% Vaccination: Deaths averted per 100k")

h3 + aes(y = deaths) + labs(y = "Deaths", title = "70% Vaccination: Deaths")

h3 + aes(y = deaths.per100k) + labs(y = "Deaths per 100k", title = "70% Vaccination: Deaths per 100k")

h3 + aes(y = deaths.averted) + labs(y = "Deaths averted", title = "70% Vaccination: Deaths averted")

h3 + aes(y = deaths.averted.per100k) + labs(y = "Deaths averted per 100k", title = "70% Vaccination: Deaths averted per 100k")

3.6 Fig. DALYs, DALYs averted

# age groups
h1 + aes(y = dalys) + labs(y = "DALYs", title = "70% Vaccination: DALYs")

h1 + aes(y = dalys.per100k) + labs(y = "DALYs per 100k", title = "70% Vaccination: DALYs per 100k")

h1 + aes(y = dalys.averted) + labs(y = "DALYs averted", title = "70% Vaccination: DALYs averted")

h1 + aes(y = dalys.averted.per100k) + labs(y = "DALYs averted per 100k", title = "70% Vaccination: DALYs averted per 100k")

# risk groups
h2 + aes(y = dalys) + labs(y = "DALYs", title = "70% Vaccination: DALYs")

h2 + aes(y = dalys.per100k) + labs(y = "DALYs per 100k", title = "70% Vaccination: DALYs per 100k")

h2 + aes(y = dalys.averted) + labs(y = "DALYs averted", title = "70% Vaccination: DALYs averted")

h2 + aes(y = dalys.averted.per100k) + labs(y = "DALYs averted per 100k", title = "70% Vaccination: DALYs averted per 100k")

h3 + aes(y = dalys) + labs(y = "DALYs", title = "70% Vaccination: DALYs")

h3 + aes(y = dalys.per100k) + labs(y = "DALYs per 100k", title = "70% Vaccination: DALYs per 100k")

h3 + aes(y = dalys.averted) + labs(y = "DALYs averted", title = "70% Vaccination: DALYs averted")

h3 + aes(y = dalys.averted.per100k) + labs(y = "DALYs averted per 100k", title = "70% Vaccination: DALYs averted per 100k")